package com.by.common.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @author Ye QS
 * @version 0.1
 * @className PageQuery
 * @description
 * @date 2024/9/9 16:01
 * @since jdk11
 */

/**
 * 分页参数模型类
 *
 * @author yqs
 */
/**
 * 分页参数模型类
 *
 * 本类用于封装分页查询所需的参数，包括当前页面和每页记录数。
 */
@ApiModel(value = "分页参数")
public class PageQuery {

    /**
     * 当前第几页，默认为第1页
     */
    @ApiModelProperty(value = "当前第几页,默认第1页", required = false)
    private int page;

    /**
     * 每页记录数，默认为10条记录
     */
    @ApiModelProperty(value = "每页记录数，默认10", required = false)
    private int pageSize;

    /**
     * 获取当前页码。
     *
     * 如果page属性值为0，则返回默认的第一页（即1）。
     *
     * @return 返回经过校验后的当前页码
     */
    public int getPage() {
        if (page == 0) {
            return 1;
        }
        return page;
    }

    /**
     * 设置当前页码。
     *
     * 如果传入的page小于等于0，则自动调整为第一页（即1）。
     *
     * @param page 用户设定的页码
     */
    public void setPage(int page) {
        if (page <= 0) {
            this.page = 1;
            return;
        }
        this.page = page;
    }

    /**
     * 获取每页显示的记录数量。
     *
     * 如果pageSize属性值为0，则返回默认的数量（即10）。
     *
     * @return 返回经过校验后的每页记录数
     */
    public int getPageSize() {
        if (this.pageSize == 0) {
            return 10;
        }
        return pageSize;
    }

    /**
     * 设置每页显示的记录数量。
     *
     * 如果传入的pageSize小于等于0，则自动调整为默认数量（即10）。
     *
     * @param pageSize 用户设定的每页记录数
     */
    public void setPageSize(int pageSize) {
        if (pageSize <= 0) {
            this.pageSize = 10;
            return;
        }
        this.pageSize = pageSize;
    }
}